/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.tms.entity;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;
import java.util.List;
import com.google.common.collect.Lists;

import com.jeeplus.core.persistence.DataEntity;
import com.jeeplus.common.utils.excel.annotation.ExcelField;

/**
 * 调度单Entity
 * @author dhw
 * @version 2017-11-29
 */
public class Dispatch extends DataEntity<Dispatch> {
	
	private static final long serialVersionUID = 1L;
	private String type;		// 调度单类型
	private String code;		// 调度单编号
	private Date dispatchDDate;		// 调度时间
	private Date fetchDate;		// 取货时间
	private String carriers;		// 承运商
	private String carriersPhone;		// 承运商电话
	private String carriersCode;		// 承运单号
	private String shortNumber;		// 短运车辆号
	private String truckNumber;		// 车牌号
	private String driver;		// 司机
	private String driverPhone;		// 司机电话
	private String carriersCharge;		// 承运商运费
	private String payMode;		// 付款方式
	private String shortFreight;		// 短运费
	private String payer;		// 付款方
	private String agencyPayment;		// 代收货款
	private String freight;		// 运费
	private String totalAppendCharge;		// 附加费
	private String totalCostCharge;		// 总成本费用
	private String payCash;		// 现付
	private String payExtract;		// 提付
	private String payRound;		// 回付
	private String truckSurplusWeight;		// 车辆剩余空间重量
	private String truckSurplusVolume;		// 车辆剩余方量
	private String totalWeight;		// 总重量
	private String totalVolume;		// 总方数
	private String totalCharge;		// 总运费
	private String freightCost;		// 运费成本
	private String stay1;		// 预留1
	private String stay2;		// 预留2
	private List<DispatchAppend> dispatchAppendList = Lists.newArrayList();		// 子表列表
	private List<DispatchDetail> dispatchDetailList = Lists.newArrayList();		// 子表列表
	
	public Dispatch() {
		super();
	}

	public Dispatch(String id){
		super(id);
	}

	@ExcelField(title="调度单类型", dictType="dispatch_type", align=2, sort=6)
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
	
	@ExcelField(title="调度单编号", align=2, sort=7)
	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="调度时间不能为空")
	@ExcelField(title="调度时间", align=2, sort=8)
	public Date getDispatchDDate() {
		return dispatchDDate;
	}

	public void setDispatchDDate(Date dispatchDDate) {
		this.dispatchDDate = dispatchDDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="取货时间", align=2, sort=9)
	public Date getFetchDate() {
		return fetchDate;
	}

	public void setFetchDate(Date fetchDate) {
		this.fetchDate = fetchDate;
	}
	
	@ExcelField(title="承运商", align=2, sort=10)
	public String getCarriers() {
		return carriers;
	}

	public void setCarriers(String carriers) {
		this.carriers = carriers;
	}
	
	@ExcelField(title="承运商电话", align=2, sort=11)
	public String getCarriersPhone() {
		return carriersPhone;
	}

	public void setCarriersPhone(String carriersPhone) {
		this.carriersPhone = carriersPhone;
	}
	
	@ExcelField(title="承运单号", align=2, sort=12)
	public String getCarriersCode() {
		return carriersCode;
	}

	public void setCarriersCode(String carriersCode) {
		this.carriersCode = carriersCode;
	}
	
	@ExcelField(title="短运车辆号", align=2, sort=13)
	public String getShortNumber() {
		return shortNumber;
	}

	public void setShortNumber(String shortNumber) {
		this.shortNumber = shortNumber;
	}
	
	@ExcelField(title="车牌号", align=2, sort=14)
	public String getTruckNumber() {
		return truckNumber;
	}

	public void setTruckNumber(String truckNumber) {
		this.truckNumber = truckNumber;
	}
	
	@ExcelField(title="司机", align=2, sort=15)
	public String getDriver() {
		return driver;
	}

	public void setDriver(String driver) {
		this.driver = driver;
	}
	
	@ExcelField(title="司机电话", align=2, sort=16)
	public String getDriverPhone() {
		return driverPhone;
	}

	public void setDriverPhone(String driverPhone) {
		this.driverPhone = driverPhone;
	}
	
	@ExcelField(title="承运商运费", align=2, sort=17)
	public String getCarriersCharge() {
		return carriersCharge;
	}

	public void setCarriersCharge(String carriersCharge) {
		this.carriersCharge = carriersCharge;
	}
	
	@ExcelField(title="付款方式", align=2, sort=18)
	public String getPayMode() {
		return payMode;
	}

	public void setPayMode(String payMode) {
		this.payMode = payMode;
	}
	
	@ExcelField(title="短运费", align=2, sort=19)
	public String getShortFreight() {
		return shortFreight;
	}

	public void setShortFreight(String shortFreight) {
		this.shortFreight = shortFreight;
	}
	
	@ExcelField(title="付款方", align=2, sort=20)
	public String getPayer() {
		return payer;
	}

	public void setPayer(String payer) {
		this.payer = payer;
	}
	
	@ExcelField(title="代收货款", align=2, sort=21)
	public String getAgencyPayment() {
		return agencyPayment;
	}

	public void setAgencyPayment(String agencyPayment) {
		this.agencyPayment = agencyPayment;
	}
	
	@ExcelField(title="运费", align=2, sort=22)
	public String getFreight() {
		return freight;
	}

	public void setFreight(String freight) {
		this.freight = freight;
	}
	
	@ExcelField(title="附加费", align=2, sort=23)
	public String getTotalAppendCharge() {
		return totalAppendCharge;
	}

	public void setTotalAppendCharge(String totalAppendCharge) {
		this.totalAppendCharge = totalAppendCharge;
	}
	
	@ExcelField(title="总成本费用", align=2, sort=24)
	public String getTotalCostCharge() {
		return totalCostCharge;
	}

	public void setTotalCostCharge(String totalCostCharge) {
		this.totalCostCharge = totalCostCharge;
	}
	
	@ExcelField(title="现付", align=2, sort=25)
	public String getPayCash() {
		return payCash;
	}

	public void setPayCash(String payCash) {
		this.payCash = payCash;
	}
	
	@ExcelField(title="提付", align=2, sort=26)
	public String getPayExtract() {
		return payExtract;
	}

	public void setPayExtract(String payExtract) {
		this.payExtract = payExtract;
	}
	
	@ExcelField(title="回付", align=2, sort=27)
	public String getPayRound() {
		return payRound;
	}

	public void setPayRound(String payRound) {
		this.payRound = payRound;
	}
	
	@ExcelField(title="车辆剩余空间重量", align=2, sort=28)
	public String getTruckSurplusWeight() {
		return truckSurplusWeight;
	}

	public void setTruckSurplusWeight(String truckSurplusWeight) {
		this.truckSurplusWeight = truckSurplusWeight;
	}
	
	@ExcelField(title="车辆剩余方量", align=2, sort=29)
	public String getTruckSurplusVolume() {
		return truckSurplusVolume;
	}

	public void setTruckSurplusVolume(String truckSurplusVolume) {
		this.truckSurplusVolume = truckSurplusVolume;
	}
	
	@ExcelField(title="总重量", align=2, sort=30)
	public String getTotalWeight() {
		return totalWeight;
	}

	public void setTotalWeight(String totalWeight) {
		this.totalWeight = totalWeight;
	}
	
	@ExcelField(title="总方数", align=2, sort=31)
	public String getTotalVolume() {
		return totalVolume;
	}

	public void setTotalVolume(String totalVolume) {
		this.totalVolume = totalVolume;
	}
	
	@ExcelField(title="总运费", align=2, sort=32)
	public String getTotalCharge() {
		return totalCharge;
	}

	public void setTotalCharge(String totalCharge) {
		this.totalCharge = totalCharge;
	}
	
	@ExcelField(title="运费成本", align=2, sort=33)
	public String getFreightCost() {
		return freightCost;
	}

	public void setFreightCost(String freightCost) {
		this.freightCost = freightCost;
	}
	
	@ExcelField(title="预留1", align=2, sort=34)
	public String getStay1() {
		return stay1;
	}

	public void setStay1(String stay1) {
		this.stay1 = stay1;
	}
	
	@ExcelField(title="预留2", align=2, sort=35)
	public String getStay2() {
		return stay2;
	}

	public void setStay2(String stay2) {
		this.stay2 = stay2;
	}
	
	public List<DispatchAppend> getDispatchAppendList() {
		return dispatchAppendList;
	}

	public void setDispatchAppendList(List<DispatchAppend> dispatchAppendList) {
		this.dispatchAppendList = dispatchAppendList;
	}
	public List<DispatchDetail> getDispatchDetailList() {
		return dispatchDetailList;
	}

	public void setDispatchDetailList(List<DispatchDetail> dispatchDetailList) {
		this.dispatchDetailList = dispatchDetailList;
	}
}